<html>
<head>
<script type="text/javascript" src="/scripts/json2.js"></script>
<script type="text/javascript" src="/scripts/jsonrpc.js"></script>
</head>
<body>
<script type="text/javascript">

var rpc = new JsonRPC('/rpc',['div','sum'], ['notify']);

function getX()
{
	return parseInt(document.getElementById('x').value);
}
function getY()
{
	return parseInt(document.getElementById('y').value);
}

function setResult(r)
{
	document.getElementById('result').innerHTML += r + '<br>';
}

function call() 
{
	var x = getX();
	var y = getY();
	//  Synchronous call
	
	/*	
	try {
		setResult(x+'/'+y+ '=' + rpc.div(x,y));
		setResult(x+'+'+y+ '=' + rpc.sum(x,y));
		rpc.notify('test');
	}
	catch(e) {
		setResult(e.message);
	}
	*/

	// Asynchronous call
	
	
	rpc.div.on_error = function(e) { setResult(e.error); }
	rpc.div.on_result = function(r) { setResult(x + '/' + y + '=' + r ); }
	
	rpc.sum.on_error = function(e) { setResult(e.error); }
	rpc.sum.on_result = function(r) { setResult(x + '+' + y + '='  + r); }

	rpc.notify.on_error = function() { setResult('Notification error:' + e.error); }
	rpc.notify.on_result = function() { setResult('Notification Called'); }
	
	rpc.div(x,y);
	rpc.sum(x,y);
	rpc.notify('test');
	
	return false;
}
</script>
<p><a href="/">Using plain XMLHttpRequest</a></p>
<form onsubmit="return call();">
<p>
<input type="text" id="x" />
<input type="submit" value="?" />
<input type="text" id="y" /> = 
</p>
<p id="result"></p>
</form>
</body>
</html>

